package py.fpuna.ii.electiva2.dto;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import py.fpuna.ii.electiva2.entity.Producto;
import py.fpuna.ii.electiva2.entity.Proveedor;

/**
 *
 * @author lizg
 */
public class ProveedorDTO {
    
    private Integer provCodigo;
    private String provRazonSocial;
    private String provDireccion;
    private String provTelefono;
    private Collection<ProductoDTO> productoCollection;

    public ProveedorDTO() {
    }

    public ProveedorDTO(Integer provCodigo){
         this.provCodigo = provCodigo;
    }

    public ProveedorDTO(Integer provCodigo, String provRazonSocial, String provDireccion, String provTelefono) {
        this.provCodigo = provCodigo;
        this.provRazonSocial = provRazonSocial;
        this.provDireccion = provDireccion;
        this.provTelefono = provTelefono;
    }
    
    

    public Integer getProvCodigo() {
        return provCodigo;
    }

    public void setProvCodigo(Integer provCodigo) {
        this.provCodigo = provCodigo;
    }

    public String getProvRazonSocial() {
        return provRazonSocial;
    }

    public void setProvRazonSocial(String provRazonSocial) {
        this.provRazonSocial = provRazonSocial;
    }

    public String getProvDireccion() {
        return provDireccion;
    }

    public void setProvDireccion(String provDireccion) {
        this.provDireccion = provDireccion;
    }

    public String getProvTelefono() {
        return provTelefono;
    }

    public void setProvTelefono(String provTelefono) {
        this.provTelefono = provTelefono;
    }

    public Collection<ProductoDTO> getProductoCollection() {
        return productoCollection;
    }

    public void setProductoCollection(Collection<ProductoDTO> productoCollection) {
        this.productoCollection = productoCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (provCodigo != null ? provCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ProveedorDTO)) {
            return false;
        }
        ProveedorDTO other = (ProveedorDTO) object;
        if ((this.provCodigo == null && other.provCodigo != null) || (this.provCodigo != null && !this.provCodigo.equals(other.provCodigo))) {
            return false;
        }
        return true;
    }


    public Proveedor toEntity(){
        Proveedor proveedor = new Proveedor();
        proveedor.setProvCodigo(this.getProvCodigo());
        proveedor.setProvRazonSocial(this.getProvRazonSocial());
        proveedor.setProvDireccion(this.getProvDireccion());
        proveedor.setProvTelefono(this.getProvTelefono());

        List <Producto> listProducto = new ArrayList<Producto>();
        Iterator <ProductoDTO> itProducto = this.getProductoCollection().iterator();
        while(itProducto.hasNext()){
            listProducto.add(itProducto.next().toEntity());
        }
        proveedor.setProductoCollection(null);

        return proveedor;
    }


}
